<h1>Carte des bornes Vélibs</h1> 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
    var map;
    var locVelib = null
    var infowindowPrec = null
    var locEnCours = null;
    var utilisation;
    var stationSelect;
    var marker;


$(function(){
    //obliger de le mettre ici pour charger
    $.getJSON('app/ajax/ajax_getInfosUtilisation.php', function(data1) {
                    utilisation=data1.toString();
    });
    initialize();
    addInfosLibre();
});

function initialize() {
    //objet contenant des propriétés avec des identificateurs prédéfinis dans Google Maps permettant
    //de définir des options d'affichage de notre carte
    var options = {
            center: new google.maps.LatLng(48.858565, 2.347198),
            zoom: 18,
            mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    
    if (navigator.geolocation)
        var watchId = navigator.geolocation.watchPosition(successCallback, null, {enableHighAccuracy:true});
    else
        alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5, placement automatique à chatêlet");    
    map = new google.maps.Map(document.getElementById("carte"), options);
    update_getInfosStations();
}

function update_getInfosStations(){
        $.getJSON('app/ajax/ajax_getInfosStations.php', function(data) {
            var myMarkerImage = null;
            var contenu=null;
            $.each(data, function(i, item) {  
                myMarkerImage=myMarkerImage=new google.maps.MarkerImage('assets/images/picto_normal_medium.gif');
                if(utilisation!='1'){
                    if(item.AvailableBikes>0) contenu='Adresse :<br/>'+item.StationAddress+'<br/>Nb vélos disponible : '+item.AvailableBikes+'<br/>Nb stands libre : '+item.AvailableBikeStands+'<br/>Dernière mise à jour : '+ item.LastUpdate + "<br/><input type=\"submit\" value=\"Reserver\" onclick=\"reserverMap("+item.IdStation+")\"/>";
                    else contenu='Adresse :<br/>'+item.StationAddress+'<br/>Nb vélos disponible : '+item.AvailableBikes+'<br/>Nb stands libre : '+item.AvailableBikeStands+'<br/>Dernière mise à jour : '+ item.LastUpdate ;
                }else{
                    if(item.AvailableBikeStands>0) contenu='Adresse :<br/>'+item.StationAddress+'<br/>Nb vélos disponible : '+item.AvailableBikes+'<br/>Nb stands libre : '+item.AvailableBikeStands+'<br/>Dernière mise à jour : '+ item.LastUpdate + "<br/><input type=\"submit\" value=\"Rendre\" onclick=\"rendreMap("+item.IdStation+")\"/>";
                    else contenu='Adresse :<br/>'+item.StationAddress+'<br/>Nb vélos disponible : '+item.AvailableBikes+'<br/>Nb places libre : '+item.AvailableBikeStands+'<br/>Dernière mise à jour : '+ item.LastUpdate ;
                }
                var myWindowOptions = {
                content: contenu
                } 
                var infowindow = new google.maps.InfoWindow(myWindowOptions);
                if(item.Bonus){
                    myMarkerImage=new google.maps.MarkerImage('assets/images/picto_start_medium2.gif');
                }
                    var markerVelo = new google.maps.Marker({
                    position: new google.maps.LatLng(item.StationLatitude, item.StationLongitude),
                    map: map,
                    title: item.StationAddress,
                    icon: myMarkerImage
                });
                google.maps.event.addListener(markerVelo, 'click', function() {
                    //stationSelect=markerVelo.title;
                    if(infowindowPrec!=null)
                            infowindowPrec.close();
                    infowindow.open(map,markerVelo);
                    infowindowPrec=infowindow;
                });
            });
        //setTimeout(update_getInfosStations, 10000);
        });
}

function successCallback(position){
    map.panTo(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(position.coords.latitude, position.coords.longitude), 
        map: map
    }); 
}
</script>
<?php Atomik::needed('propel');
$abonne = TabAbonneQuery::create()->filterByEmail($_SESSION["user_login"])->findOne();
$utilisation = TabUtilisationQuery::create()->filterByFkAbonne($abonne->getIdAbonne())->filterByDateFin(null)->findOne();
?>
<script>
var utilisation = <?php if($utilisation==null){ echo "false"; } else{ echo "true"; } ?>;
    
function addInfosLibre(){
    $.getJSON('app/ajax/ajax_getVelosLibres.php?id='+$('#stations').val()+'&email='+$('#emailhidden').val(), function(data) {
        if(!utilisation){
           $('#velosLibres').val(data.AvailableBikes);
           if(data.AvailableBikes<1)
               $('#submit').hide();
           else
               $('#submit').show();
        } else{
            $('#velosLibres').val(data.AvailableBikeStands);  
            if(data.AvailableBikeStands<1)
               $('#submit').hide();
            else
               $('#submit').show();
        }
              
    });
}

function reserverDeroulant(){
    var data = "email="+$('#emailhidden').val()+"&id="+$('#stations').val();
    $.ajax({
        type: 'POST',
        url: 'app/ajax/ajax_reserverVelo.php',
        data: data,
        success: function(result){
            if(result.toString()=='0'){
                document.location.reload();
            }else if(result.toString()=='1'){
                alert("Vous n'avez pas ou plus d'abonnement, vous êtes redirigé vers l'espace client pour vous abonner")
                url = "<?php echo Atomik::url('cache', array(
                    'route' => 'user',
                    'action_user' => 'information'
                ))?>";
                url2="/easylib/index.php?route=user&action_user=information&action=cache&param=show"                   
                window.location.replace(url2);
            }else{
                alert('Désolé, plus de vélo pour cette station')
            }    
        }
    });
}
function rendreDeroulant(){
    var data = "email="+$('#emailhidden').val()+"&id="+$('#stations').val();
    $.ajax({
          type: 'POST',
          url: 'app/ajax/ajax_rendreVelo.php',
          data: data,
          success: function(result){
              document.location.reload();
          }
    });
}

function reserverMap(id){
    var data = "email="+$('#emailhidden').val()+"&id="+id;
        $.ajax({
            type: 'POST',
            url: 'app/ajax/ajax_reserverVelo.php',
            data: data,
            success: function(result){
               if(result.toString()=='0'){
                document.location.reload();
                }else if(result.toString()=='1'){
                    alert("Vous n'avez pas ou plus d'abonnement, vous êtes redirigé vers l'espace client pour vous abonner")
                    url = "<?php echo Atomik::url('cache', array(
                        'route' => 'user',
                        'action_user' => 'information'
                    ))?>";
                    url2="/easylib/index.php?route=user&action_user=information&action=cache&param=show"                   
                    window.location.replace(url2);
                }else{
                    alert('Désolé, plus de vélo pour cette station')
                }
            }
        });
}

function rendreMap(id){
    var data = "email="+$('#emailhidden').val()+"&id="+id;
    $.ajax({
          type: 'POST',
          url: 'app/ajax/ajax_rendreVelo.php',
          data: data,
          success: function(result){
              document.location.reload();
          }
    });
}

</script>


<div id="reservationEncours" style="width:100%; height:50px; margin-top: 50px;">
    <?php
        $enCoursDeLoc=null;  
        echo $abonne->getPrenom();
        if($utilisation==null){
            echo(", vous n'avez pas de réservation en cours. Vous avez la possibilité de reserver un vélo.");
            $enCoursDeLoc=false;
        }else{
            echo(", vous avez une réservation en cours, indiquer votre station de retour.");
            $enCoursDeLoc=true;
        }
    ?>
</div>
<div id="rechercheStation" style="width:80%; height:100px;">
        <select name="stations" id="stations" style="width:50%" onChange="addInfosLibre()">
            <?php
                $firstAvailable=null;
                $stations = TabStationQuery::create()->orderByStationAddress()->find();
                foreach($stations as $station){
                    $infoStation = TabInformationStationQuery::create()->filterByFkStation($station->getIdStation())->orderByLastUpdate(Criteria::DESC)->findOne();
                    $station instanceof TabStation;
                    if($firstAvailable==null){
                        if($utilisation==null)
                            $firstAvailable=$infoStation->getAvailableBikes();
                        else
                            $firstAvailable=$infoStation->getAvailableBikeStands ();
                    }
                    echo "<option value=\"".$station->getIdStation()."\">".$station->getStationAddress()."</option>";
                }
        echo("</select>");
        if($utilisation==null) echo("<div id=\"velibres\" style=\"display:inline;\"> vélos libres </div>");
        else echo("<div id=\"standsLibres\" style=\"display:inline;\"> attaches disponibles </div>");?> 
        <input type="text" style="width:30px;" id="velosLibres" onFocus="this.blur()" name="velosLibres" <?php echo "value=$firstAvailable>"?>
            
        <?php
            $mailu=$_SESSION["user_login"];
            echo("<input type=\"hidden\" name=\"emailhidden\" id=\"emailhidden\" value='$mailu'/>");
            if($enCoursDeLoc==false) echo("<input type=\"submit\" id=\"submit\" value=\"Reserver\" onclick=\"reserverDeroulant()\"/>");
            else echo("<input type=\"submit\" id=\"submit\" value=\"Rendre\" onclick=\"rendreDeroulant()\"/>");
        ?>
</div>
<div id="carte" style="width:100%; height:700px"></div> 